<?php

class Produto_ConsultaController extends Zend_Controller_ActionAquiles {

    public function init() {
        parent::init();
        $this->view->title = 'Produto';
    }

    public function indexAction() {
        $this->view->lista = Application_Model_Produto::getInstance()->getAll();
    }

    public function editaAction(){
        if(!isset($_REQUEST['produto'])){
            $produto['idprodutos'] = "";
            $produto['produto'] = "";
            $produto['estoque'] = "";
            $produto['estoque_min'] = "";
            $produto['preco'] = "0.00";
            $produto['familia'] = "";
            $produto['imagem'] = "";
            $produto['dt_exclusao'] = null;
            $this->view->produto = $produto;
        }else{
            $codigo =$_REQUEST['produto'];
            $produto = Application_Model_Produto::getInstance()->getById($codigo);
            $produto = $produto->toArray();
            if(is_array($produto) && count($produto) > 0 ){
                $this->view->produto = $produto[0];
            }else{
                return $this->_helper->redirector('index', 'consulta', 'produto');
            }
        }
    }
    
    
    public function salvaAction() {
        $produto = $this->getProduto($_REQUEST);
        
        $sessioAcl = new Zend_Session_Namespace('usuario');
        
        if(isset($produto['idprodutos']) && !empty($produto['idprodutos']) && isset($produto['estoque'])){
            if(!$sessioAcl->user == 'estoque' || !$sessioAcl->password == 'estoque' ){
                $original = Application_Model_Produto::getInstance()->getByIdRow($produto['idprodutos']);
                $produto['estoque'] = $original['estoque'];
                $produto['estoque_min'] = $original['estoque_min'];
            }
            
            Application_Model_Produto::getInstance()->update($produto);
        }else{
            if(!$sessioAcl->user == 'estoque' || !$sessioAcl->password == 'estoque' ){
                $produto['estoque'] = 0;
                $produto['estoque_min'] = 0;
            }
            
            Application_Model_Produto::getInstance()->insert($produto);
        }
        
        return $this->_helper->redirector('index', 'consulta', 'produto');
    }

    private function getProduto($post){
        $filter = new Zend_Filter_Money();
        
        if(isset($post['idprodutos']) && !empty($post['idprodutos'])){
            $produto['idprodutos'] = $post['idprodutos'];
        }
        
        $produto['produto'] = $post['produto'];
        $produto['estoque'] = $post['estoque'];
        $produto['estoque_min'] = $post['estoque_min'];
        $produto['preco'] = $filter->filter($post['preco']);
        $produto['familia'] = $post['familia'];
        $produto['imagem'] = $post['imagem'];
        $produto['dt_exclusao'] = null;
        
        return $produto;
    }
    
    public function removeAction(){
        $codigo = null;
        if(isset($_REQUEST['produto'])){
            $codigo = $_REQUEST['produto'];
            
            $produtos = Application_Model_Produto::getInstance()->getById($codigo);
            if(!empty($produtos)){
                Application_Model_Produto::getInstance()->remove($this->getProduto($produtos[0]));
            }
        }
        
        
        
        return $this->_helper->redirector('index', 'consulta', 'produto');
    }
            

}